A modulo operation is a type of arithmetic division, except rather than returning the quotient resulting from a division of a dividend by a divisor, the modulo operation returns the remainder resulting from that division. One example of the use of a modulo division operation is in connection with hashing algorithms. Hashing algorithms often (but not always) employ a modulo operation to map an input string to a hash key used as an index into a hashing table. Common hashing algorithms process incoming data by taking the modulo of the input data with a large prime number as the divisor as part of the hashing computation.
Data compression techniques are one area in which hashing algorithms may be employed. Data compression is typically a numerically-intensive operation, and some compression techniques employ numerous divide/modulo arithmetic operations, each of which can consume numerous processor clock cycles.
Accordingly, there is a continuing need in the art for circuits and methods for optimizing the execution of modulo division operations, whether in connection with the performance of a hashing algorithm, data compression technique, or other application. The present invention addresses this need.